package ar.pmt.vista.decoradores;

import java.util.Date;

import javax.servlet.jsp.PageContext;

import org.apache.commons.lang.time.FastDateFormat;
import org.displaytag.decorator.DisplaytagColumnDecorator;
import org.displaytag.exception.DecoratorException;
import org.displaytag.properties.MediaTypeEnum;

import ar.pmt.vista.utils.Utils;

public class ShortDateWrapper implements DisplaytagColumnDecorator {

   public ShortDateWrapper() {
      dateFormat = FastDateFormat.getInstance("dd/MM/yyyy");
   }

   public Object decorate(Object columnValue, PageContext pageContext, MediaTypeEnum media) throws DecoratorException {

      try {
         // Si viene un string como fecha
         String dateStr = (String) columnValue;
         Date date = Utils.stringToLongDate(dateStr);
         if (date == null) {
            return "";
         }
         return dateFormat.format(date);
      } catch (ClassCastException e) {
         // Si viene como un date o calendar
         return dateFormat.format(columnValue);
      }
   }

   private FastDateFormat dateFormat;
}